Currently large volumes of random access storage is usually provided in a video server by hard disk drives. Each hard drive includes one or more disks (typically 5 disks often called platters) mounted on a common axle driven to spin by a motor. Each platter (disk) may include thousands of circular tracks in which data can be stored. The tracks are provided in a storage area that extends from an inner circular edge at about 1/4 of the radius of the platter to the outer circular edge of the platter. A respective read/write head for each side of each platter, is mounted on one of the branches of a common comb-shaped carrier called a comb. The comb is turned by another motor called an actuator so as to move the heads radially with respect to the platters or disks in order to position the heads above one of a multitude of tracks on the platter to access (read or write) information from the selected track. When the heads are in position to access information on a track then each of the heads on the comb is in position to access a respective track on a respective side of a disk without further substantial movement of the comb. All the tracks on respective sides of the disks, which can be accessed, when the comb is positioned for accessing tracks without further significant movement of the comb, are referred to as a cylinder.
Moving the comb from a position to access one cylinder to a position to access another cylinder is known in the art as seeking, and the time required for such movement is known as seek time. The radial distance that the head moves during seeking is the seek distance. The seek time for moving to the adjacent cylinder is much shorter than the seek time for moving from a cylinder at the inner or outer edge to a cylinder at the other circular edge of the disk. In the seeking, first there is an acceleration period, then a constant velocity movement period, then a deceleration period, and finally a settling period, but for a seek across dozens of tracks, generally the seek time will be approximately equal to the seek distance.
After the head is positioned on the appropriate cylinder, then the system must wait until the disk rotates to the correct circumferential position to read the required data from the track. This rotational delay is known as latency. Where only a small section of a track needs to be read the average latency is about half the time for the disk to rotate. If the entire track needs to be read, then reading can begin anywhere, the data stored in a buffer, and the data is extracted from the buffer in the correct order. In such case the latency is zero.
In order to minimize seek time (and seek distance) for accessing a file, the information for a relatively short file is kept in one cylinder. Each cylinder may hold thousands of segments (256 or 512 bytes) so small files can fit in a single cylinder. If storage of a file requires multiple cylinders, the cylinders for the file are provided adjacently together. This speeds up access for sequentially accessed files such as programs and documents as well as randomly accessed files such as data base files that tend to have sections which are repeatedly accessed (retrieve, modify, store). In order to reduce latency time, the drive spins as quickly as technology allows. The disk spins around faster than information for the entire track can be accessed so usually each time the disk rotates only some of the sectors of the track are accessed (e.g. every second or third sector). Thus, the disk has to spin around several times before all the information for a track is accessed (read or written).
Optical disk drives typically have a single disk in position for access and the disks have a single spiral track, but rewritable optical disks can be used in a similar manner as hard drives to provide large quantities of random access storage with each loop of the spiral track used in the same manner as a cylinder of a hard drive. These optical systems have not yet become popular for multi-disk arrays, but could be adapted for that use.
In some modern high performance operating systems (e.g. IBM's OS/2) portions of a files are moved around when other files are deleted so files can always be kept together. In other systems such as Windows 95 or DOS by Microsoft, when files are deleted, then the available space is reused and files are written wherever space is available on the drive. These systems include utility programs (e.g. scan-disk) to allow the user to occasionally defragment the hard drives so that all the parts of a file are moved together on the same or adjacent cylinders.
Generally in current video servers, multiple multimedia programs are stored in a redundant array of inexpensive disks (RAID) type storage system. In a RAID level 3 hard drive system, one of the hard drives is designated as a parity drive. During storage, a respective portion of a file is stored in each of the other hard drives in a round robin manner, and then a parity portion is calculated and stored in the parity or redundant drive. Round robin is a method of taking turns during repeated access cycles in which each unit gets one turn in each turn cycle, and the units take turns in the same order during each turn cycle. Storing consecutive portions of the same file in multiple drives in a round robin manner is known in the art as striping. If any one drive in the RAID system fails during a read, then all the information will automatically be available by processing the information from the remaining drives. Note that in RAID level 5 the parity portion is stored in different hard drives.
The files for each multimedia program include at least one video file, at least one audio file, and multiple control files. The video files for a 1-hour program even in a highly compressed format, still requires several gigabytes of storage. The files for a program are kept together on the disk since portions of the files need to be accessed together. Typically many cylinders are required for each video program.
Typical multimedia data servers are able to simultaneously provide multiple program streams. That is, the streams of several programs may be input and/or output simultaneously. This requires simultaneous disk access to multiple files. Simultaneous disk access means that, with regard to the streams, portions of the required files are retrieved as they are needed to provide data for the simultaneous streams. In this scheme several files are repeatedly accessed over short periods of time. The comb moves at high speeds back and fourth between the tracks for the required files as short portions of each file are sequentially accessed. That is the disk access is not really physically simultaneous with regard to the disks, but rather only pseudo-simultaneous, but functionally with respect to the data streams the access is simultaneous.
Those skilled in the art are directed to patent application Ser. No. 08/612,157 filed Mar. 7, 1996 and to patent application PCT/US96/17156 publication number WO 97/16023 published May 1, 1997.
The above citations are hereby incorporated herein in whole by reference.